SSD (Solid State Disk) storage media are classed into two categories, one employs FLAH chips as storage medium and the other employs DRAM as storage medium. SSDs employing DRAM as storage medium require a separate power supply to protect data security, and thus have a narrow range of applications. FLASH based SSDs employ FLASH chips as storage media. One basic problem of FLASH memory is that, before data writing, erase operation must be performed on corresponding storage cells. Moreover, it is performed in a unit of block, which is larger than the basic unit of upper level logic read and write operations and also larger than the unit page of SSD internal data transmission. This characteristic may cause severe performance drop of the entire FLASH memory. Another characteristic impacting performance is that SSD storage elements have limited erase times.
For reasonable data arrangement in chips, realizing load balance, lowering loss unbalance, and improving the parallelism of storage elements, SSDs improve entire performance using FTL (Flash Translation Layer). A basic function of FTL is to maintain a mapping table of LBAs (Logical Block Addresses) to physical addresses. If a LBA requires update (to write new data into the LBA), FTL may write updated data into an unused physical address, at the same time, update the mapping table to record the new physical address corresponding to the LBA. At that point, a duplicate of data mapped by the LBA previously is still stored in an obsolete physical address that the LBA mapped to, i.e., a garbage block, waiting for collecting by a backstage garbage collection program, only after which the data is really deleted and can not be restored.
SSD data deleting method according to existing data delete techniques mainly employs the SECURITY ERASE UNIT command of the ATA (Advanced technology Attachment) command set to erase all data regions accessible to users. HD (Hard Disk) drivers write 0 or 1 to data regions through executing the SECURITY ERASE UNIT command of ATA commands to erase all data regions accessible to users. Through deleting data on a whole HD using ATA command, data on a SSD can be thoroughly deleted. However, in order to reduce the time for format, instead of deleting data in all blocks, a SSD may only release a mapping table of LBAs to physical addresses, and data to be deleted may be still stored in garbage blocks, waiting for invoking a backstage garbage collection program when I/O is idle or some deleting condition is satisfied, after that the data can be really deleted.
Existing delete methods also comprise erasing data at a specified physical address as required using general I/O commands in a software manner, particularly, through rewriting a specified LBA of a HD. If it is to delete data of a whole HD, LBAs of the whole HD will be rewritten. Data overwrite generally overwrites original data with specified and random data, perhaps, several times repeatedly. At last, data is read to confirm whether data overwriting is successful. In this way when deleting data of a whole HD, it is necessary to repeat data overwriting several times, resulting in more and more duplicates of the specified and random data left in the FTL of a SSD, however, data required to be deleted may be still stored in garbage blocks as duplicate data waiting for collecting by a backstage garbage collection program when I/O is idle or some deleting condition is satisfied, after that the data can be really deleted.
In other words, when deleting any file, none of the prior art can make sure of the immediate deleting of duplicate data of the file that may probably exist, such that data security can not be guaranteed since it is not difficult to recover a file due to the present of duplicate data.